package main

import (
	"context"
	"log"

	proto "eg4/proto"

	"github.com/micro/go-micro"
)

// 逻辑业务
type Greeter struct{}

func (g *Greeter) Hello(ctx context.Context, req *proto.HelloRequest, rsp *proto.HelloResponse) error {
	rsp.Greeting = "hello " + req.Name
	return nil
}

func main() {
	// 函数式 函数是一次执行服务。
	function := micro.NewFunction(
		micro.Name("greeter"),   // 注册函数式服务名字
		micro.Version("latest"), // 注册服务版本
	)

	function.Init() // 解析注册flags参数

	// proto.RegisterGreeterHandler(service.Server(), new(Greeter)) // 不能用该方法注册缺少handler method
	function.Handle(new(Greeter))
	if err := function.Run(); err != nil {
		log.Fatal(err)
	}
}
